/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.revivius.jbtorrent.entity;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *
 * @author Revivius
 */
public class Torrent {

    private String announce;
    private List<String> announceList;
    private String comment;
    private String createdBy;
    private Object creationDate;
    private TorrentInfo info;

    private final Map<String, Object> skipped = new HashMap<>();

    /**
     * @return the announce
     */
    public String getAnnounce() {
        return announce;
    }

    /**
     * @param announce the announce to set
     */
    public void setAnnounce(String announce) {
        this.announce = announce;
    }

    /**
     * @return the announceList
     */
    public List<String> getAnnounceList() {
        return announceList;
    }

    /**
     * @param announceList the announceList to set
     */
    public void setAnnounceList(List<String> announceList) {
        this.announceList = announceList;
    }

    /**
     * @return the comment
     */
    public String getComment() {
        return comment;
    }

    /**
     * @param comment the comment to set
     */
    public void setComment(String comment) {
        this.comment = comment;
    }

    /**
     * @return the createdBy
     */
    public String getCreatedBy() {
        return createdBy;
    }

    /**
     * @param createdBy the createdBy to set
     */
    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    /**
     * @return the creationDate
     */
    public Object getCreationDate() {
        return creationDate;
    }

    /**
     * @param creationDate the creationDate to set
     */
    public void setCreationDate(Object creationDate) {
        this.creationDate = creationDate;
    }

    /**
     * @return the info
     */
    public TorrentInfo getInfo() {
        return info;
    }

    /**
     * @param info the info to set
     */
    public void setInfo(TorrentInfo info) {
        this.info = info;
    }

    public void addSkipped(String key, Object value) {
        skipped.put(key, value);
    }

    public Map<String, Object> getSkipped() {
        return skipped;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("TorrentFile[").append("\n");
        sb.append("\t").append("announce = ").append(getAnnounce()).append("\n");
        sb.append("\t").append("announceList = ").append(getAnnounceList()).append("\n");
        sb.append("\t").append("comment = ").append(getComment()).append("\n");
        sb.append("\t").append("createdBy = ").append(getCreatedBy()).append("\n");
        sb.append("\t").append("creationDate = ").append(getCreationDate()).append("\n");
        sb.append("\t").append("info = ").append(getInfo()).append("\n");
        sb.append("]");

        return sb.toString();

    }



}
